МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ
Національний університет “Львівська політехніка”
Кафедра САП
Звіт
до лабораторної роботи № 8
Особливості мови об’єктно-орiєнтованого програмування С++
з курсу “Проблемно-орієнтоване програмування”
для студентів спеціальності "Комп’ютерні системи проектування"
Львів 2013
ТЕОРЕТИЧНІ ВІДОМОСТІ
1. МЕТА РОБОТИ
Мета роботи - ознайомлення з особливостями мови об’єктно-орiєнтованого програмування С++.
2. ТЕОРЕТИЧНІ ВІДОМОСТІ
2.1. Основнi вiдмiнностi С++ вiд С
С++ - унiверсальна мова програмування, яка задумана так, щоб зробити програмування бiльш приємним для серйозного програмiста. С++ була розроблена так, щоб дати можливiсть однiй людинi без надмiрних зусиль написати програму в 2500 стрiчок.
За базову мову для С++ була вибрана мова С, тому що:
вона вiдносно низького рiвня.;
вiдповiдає бiльшостi задач системного програмування;
вже створено мiльони стрiчок бiблiотечних функцiй i сервiсних програм, написаних на С;
iснують сотнi тисяч програмiстiв, якi знають С.
До ключових слiв визначених в С у мову С++ додано такі ключовi слова:
overload
delete
friend
protected
catch
new
inline
public
try
this
operator
template
throw
class
private
virtual
Основна рiзниця мiж цими мовами полягає у методi побудови програм: мова С - модульна мова i внаслiдок цього парадигма програмування звучить так
“Визначте, якi модулi вам потрiбно; розчленiть програму так, щоб данi були захованi в модулях”;
мова С++ - об’єктно-орiєнтована мова i внаслiдок цього парадигма програмування звучить так
“Визначте, якi класи вам потрiбно; пiдготуйте повний набiр операцiй для кожного класу”.
Об’єктно-орiєнтоване програмування (ООП) включає в собi найкраще з структурного програмування i, використовуючи новi концепцiї дозволяє програмiсту набагато простiше розбити задачу на пiдзадачi, якi пiддаються керуванню. Цi концепцiї називаються: об’єкти, полiморфiзм, успадкування. Розглянемо їх детальніше.
Об’єкти
Об’єкт це логiчна одиниця, яка мiстить данi i код, що манiпулює цими даними. Всерединi об’єкту, код i/або данi можуть належати тільки даному об’єкту i недосяжнi будь-де за межами об’єкту. Таким чином об’єкт забезпечує певний рiвень захищеностi вiд iншої частини програми, що може випадково змiнити або некоректно використати цi данi.
Об’єкт - це змiнна визначена самим користувачем. Коли ви визначаєте об’єкт ви неявно створюєте новий тип даних.
Інкапсуляція
Інкапсуляція (incapsulation) – це механізм, який зв’язує воєдино код і дані, якими він управляє, а також забезпечує їхній захист від зовнішнього або неправильного використання. Всередині об’єкту код (функція) і дані можуть бути закритими (private) або відкритими (public). До закритої частини коду або даних не можна доступитись зовні, відкриті код або дані доступні з довільної частини програми. Як правило, відкрита частина коду забезпечує керовану взаємодію (інтерфейс) із закритими елементами об’єкта.
Полiморфiзм
ООП пiдтримує полiморфiзм який означає що одне iм’я може бути використане для декiлькох зв’язаних, але дещо рiзних застосувань. Наприклад, ви можете мати програму, що визначає три рiзних типи стека. Один стек застосовується для типу integer, iнший для float а наступний для long. Завдяки полiморфiзму ви створюєте функцiї роботи з елементами стеку, наприклад, push(), pop(), а компiлятор сам вибере потрiбну функцiю в залежностi вiд типу виклику.
Поліформізм дозволяє спростити програму, створюючи один інтерфейс для виконання різних дій. Відповідальність за вибір конкретної дії (методу) і ситуації, яка при цьому виникає, покладається на компілятор. Програмісту не обов’язково вникати в цей процес. Необхідно лише пам’ятати відповідні правила, і коректно застосовувати загальний інтерфейс.
Успадкування
Успадкування (inheritance) – це процес, впродовж якого один обєкт може набувати властивості іншого. Він займає авжливе місце в С++, оскільки підтримує концепцію класифікації (classification).
За допомогою успадкування прогр...